<!DOCTYPE html>
<html lang="zh-CN">

<head><meta name="generator" content="Hexo 3.9.0">
    <meta charset="utf-8">
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
    <meta name="referrer" content="no-referrer">
    
        <title itemprop="name">
            
                WebService基础学习 |
                    
                        墨小蛙
        </title>
        
            <link rel="shortcut icon" href="/images/favicon.ico">
            
                <meta http-equiv="x-dns-prefetch-control" content="on">
                <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+SerifMerriweather|Merriweather+Sans|Source+Code+Pro|Ubuntu:400,700|Noto+Serif+SC" media="all">
                <link rel="dns-prefetch" href="//cdn.jsdelivr.net">
                <link rel="stylesheet" id="saukra_css-css" href="/css/style.css" type="text/css" media="all">
                <link rel="stylesheet" href="/css/lib.min.css" media="all">
                <link rel="stylesheet" href="/css/font.css" media="all">
                <link rel="stylesheet" href="/css/insight.css" media="all">
                <link rel="stylesheet" href="/css/jquery.fancybox.min.css" media="all">
                <link rel="stylesheet" href="/css/zoom.css" media="all">
                <link rel="stylesheet" type="text/css" href="/css/sharejs.css">
                <!--   <link rel="stylesheet" id="saukra_css-css" href="https://2heng.xin/wp-content/cache/autoptimize/css/autoptimize_ad42a61f4c7d4bdd9f91afcff6b5dda5.css
" type="text/css" media="all"> -->
                <script>
                    /*Initial Variables*/
                    var mashiro_option = new Object();
                    var mashiro_global = new Object();
                    mashiro_option.NProgressON = true;
                    /* 
                     * 邮箱信息之类的东西可以填在这里，这些js变量基本都作用于sakura-app.js
                     * 这样的设置仅是为了方便在基于PHP开发的主题中设置js变量，既然移植到了Node上，我想或许可以精简这一逻辑吧
                     */
                    mashiro_option.email_domain = "";
                    mashiro_option.email_name = "";
                    mashiro_option.cookie_version_control = "";
                    mashiro_option.qzone_autocomplete = false;
                    mashiro_option.site_name = "さくら荘その小蛙";
                    mashiro_option.author_name = "小蛙";
                    mashiro_option.site_url = "https://inksmallfrog.gitee.io/";
                    mashiro_option.v_appId = "t6whCN1b96a2XW5eN358hXOC-gzGzoHsz";
                    mashiro_option.v_appKey = "kigfqfKhjVJ0LsaGBKPCowxC";
                    mashiro_option.mathjax = "0";
                    mashiro_option.qq_api_url = "https://api.mashiro.top/qqinfo/";
                    mashiro_option.qq_avatar_api_url = "https://api.mashiro.top/qqinfo/";

                    // mashiro_option.jsdelivr_css_src = "https://cdn.jsdelivr.net/gh/moezx/cdn@3.4.5/css/lib.min.css";
                    // mashiro_option.float_player_on = true;

                    /*End of Initial Variables*/
                </script>
                <script type="text/javascript">
                    var bg = "https://cdn.jsdelivr.net/gh/inksmallfrog/cdn/img/covers_raw/thumb-1920-483919.jpg,https://cdn.jsdelivr.net/gh/inksmallfrog/cdn/img/covers_raw/thumb-1920-331320.jpg".split(",");
                    var bgindex = Math.floor(Math.random() * bg.length);
                    if (!!window.ActiveXObject || "ActiveXObject" in window) { //is IE?
                        alert('朋友，IE浏览器未适配哦~');
                    }
                </script>
                <style type="text/css">
                    .hljs-ln {
                        border-collapse: collapse
                    }
                    
                    .hljs-ln td {
                        padding: 0
                    }
                    
                    .hljs-ln-n:before {
                        content: attr(data-line-number)
                    }
                </style>
                <style type="text/css">
                .site-top .lower nav {
                        display: block !important;
                    }
                    
                    .author-profile i,
                    .post-like a,
                    .post-share .show-share,
                    .sub-text,
                    .we-info a,
                    span.sitename,
                    .post-more i:hover,
                    #pagination a:hover,
                    .post-content a:hover,
                    .float-content i:hover {
                        color: #FE9600
                    }
                    
                    .feature i,
                    .download,
                    .navigator i:hover,
                    .links ul li:before,
                    .ar-time i,
                    span.ar-circle,
                    .object,
                    .comment .comment-reply-link,
                    .siren-checkbox-radio:checked+.siren-checkbox-radioInput:after {
                        background: #FE9600
                    }
                    
                     ::-webkit-scrollbar-thumb {
                        background: #FE9600
                    }
                    
                    .download,
                    .navigator i:hover,
                    .link-title,
                    .links ul li:hover,
                    #pagination a:hover,
                    .comment-respond input[type='submit']:hover {
                        border-color: #FE9600
                    }
                    
                    .entry-content a:hover,
                    .site-info a:hover,
                    .comment h4 a,
                    #comments-navi a.prev,
                    #comments-navi a.next,
                    .comment h4 a:hover,
                    .site-top ul li a:hover,
                    .entry-title a:hover,
                    #archives-temp h3,
                    span.page-numbers.current,
                    .sorry li a:hover,
                    .site-title a:hover,
                    i.iconfont.js-toggle-search.iconsearch:hover,
                    .comment-respond input[type='submit']:hover {
                        color: #FE9600
                    }
                    
                    .comments .comments-main {
                        display: block !important;
                    }
                    
                    .comments .comments-hidden {
                        display: none !important;
                    }
                    
                    background-position:center center;
                    background-attachment:inherit;
                }
                </style>
</head></html>
<body class="page-template page-template-user page-template-page-analytics page-template-userpage-analytics-php page page-id-1297 chinese-font serif isWebKit">
  <div class="scrollbar" id="bar">
  </div>
  <a href="#" class="cd-top faa-float animated"></a>
  <section id="main-container">
    <div class="headertop filter-dot">
  <div id="banner_wave_1"></div>
  <div id="banner_wave_2"></div>
  <figure id="centerbg" class="centerbg">
    <div class="focusinfo no-select">
      <div class="header-tou">
        <a href="https://inksmallfrog.gitee.io/">
          <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/avators/conan.jpg">
        </a>
      </div>
      <div class="header-info">
        <p>昨天是小兔子，今天是小鹿</p>
        <div class="top-social_v2">
          <li id="bg-pre">
            <img class="flipx" src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/other/next-b.svg">
          </li>
          
            
              
                <li>
                  <a href="http://github.com/inksmallfrog" target="_blank" class="social-github" title="github">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/github.png">
                  </a>
                </li>
              
            
              
                <li>
                  <a href="http://weibo.com/inksmallfrog/profile?is_all=1" target="_blank" class="social-github" title="微博">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/sina.png">
                  </a>
                </li>
              
            
              
                <li>
                  <a href="https://music.163.com/#/user/home?id=90248658" target="_blank" class="social-github" title="网易云">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/wangyiyun.png">
                  </a>
                </li>
              
            
              
                <li>
                  <a href="https://www.zhihu.com/people/salieri-67/activities" target="_blank" class="social-github" title="知乎">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/zhihu.png">
                  </a>
                </li>
              
            
              
                <li>
                  <a href="mailto:inksmallfrog@gmail.com" class="social-github" title="email">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/email.svg">
                  </a>
                </li>
              
            
              
                <li class="wechat">
                  <a href="/#">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/qq.png">
                  </a>
                  <div class="wechatInner">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/custom/qq.jpg">
                  </div>
                </li>
              
            
              
                <li class="wechat">
                  <a href="/#">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/social/wechat.png">
                  </a>
                  <div class="wechatInner">
                    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/custom/wechat.jpg">
                  </div>
                </li>
              
            
          
          <li id="bg-next">
            <img src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/other/next-b.svg">
          </li>
        </div>
      </div>
    </div>
  </figure>
  <div id="video-container" style="">
    <video style="object-fit: fill" id="bgvideo" class="video" video-name="" src="" width="auto" preload="auto">
    </video>
    <div id="video-btn" class="loadvideo videolive">
    </div>
    <div id="video-add">
    </div>
    <div class="video-stu">
    </div>
  </div>
  <div class="headertop-down faa-float animated" onclick="headertop_down()">
    <span>
      <i class="fa fa-chevron-down" aria-hidden="true">
      </i>
    </span>
  </div>
</div>
    <div id="page" class="site wrapper">
      <header class="site-header no-select gizle sabit" role="banner">
  <div class="site-top">
    <div class="site-branding">
      <span class="site-title">
        <span class="logolink moe-mashiro">
          <a href="/">
            <span class="sakurasono">さくら荘その</span>
            <span class="shironeko">小蛙</span>
          </a>
        </span>
      </span>
    </div>
    <div class="searchbox search-form-submit">
      <i class="iconfont js-toggle-search iconsearch icon-search">
      </i>
    </div>
    <div id="show-nav" class="showNav mobile-fit">
      <div class="line line1">
      </div>
      <div class="line line2">
      </div>
      <div class="line line3">
      </div>
    </div>
    <div class="lower-cantiner">
      <div class="lower">
        <nav class="mobile-fit-control hide">
          <ul id="menu-new" class="menu">
            
              <li>
                <a href="/">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-fort-awesome faa-shake" aria-hidden="true"></i>
                    首页
                  </span>
                </a>
                
              </li>
            
              <li>
                <a href="/archives">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-archive faa-shake" aria-hidden="true"></i>
                    归档
                  </span>
                </a>
                
                  <ul class="sub-menu">
                    
                      <li>
                        <a href="/categories/技术/">
                          <i class="fa fa-code" aria-hidden="true"></i>
                          技术
                        </a>
                      </li>
                    
                      <li>
                        <a href="/categories/生活/">
                          <i class="fa fa-file-text-o" aria-hidden="true"></i>
                          生活
                        </a>
                      </li>
                    
                  </ul>
                
              </li>
            
              <li>
                <a href="javascript:;">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-list-ul faa-vertical" aria-hidden="true"></i>
                    清单
                  </span>
                </a>
                
                  <ul class="sub-menu">
                    
                      <li>
                        <a href="/tags/悦读/">
                          <i class="fa fa-th-list faa-bounce" aria-hidden="true"></i>
                          书单
                        </a>
                      </li>
                    
                      <li>
                        <a href="/bangumi/">
                          <i class="fa fa-film faa-vertical" aria-hidden="true"></i>
                          番组
                        </a>
                      </li>
                    
                      <li>
                        <a href="/music/">
                          <i class="fa fa-headphones" aria-hidden="true"></i>
                          歌单
                        </a>
                      </li>
                    
                      <li>
                        <a href="/tags/图集/">
                          <i class="fa fa-photo" aria-hidden="true"></i>
                          图集
                        </a>
                      </li>
                    
                  </ul>
                
              </li>
            
              <li>
                <a href="/comment/">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-pencil-square-o faa-tada" aria-hidden="true"></i>
                    留言板
                  </span>
                </a>
                
              </li>
            
              <li>
                <a href="/links/">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-link faa-shake" aria-hidden="true"></i>
                    友人帐
                  </span>
                </a>
                
              </li>
            
              <li>
                <a href="/">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-leaf faa-wrench" aria-hidden="true"></i>
                    关于
                  </span>
                </a>
                
                  <ul class="sub-menu">
                    
                      <li>
                        <a href="/about/">
                          <i class="fa fa-meetup" aria-hidden="true"></i>
                          我？
                        </a>
                      </li>
                    
                      <li>
                        <a href="/theme-sakura/">
                          <i class="fa iconfont icon-sakura" aria-hidden="true"></i>
                          主题
                        </a>
                      </li>
                    
                      <li>
                        <a href="/lab/">
                          <i class="fa fa-cogs" aria-hidden="true"></i>
                          Lab
                        </a>
                      </li>
                    
                  </ul>
                
              </li>
            
              <li>
                <a href="/atom.xml">
                  <span class="faa-parent animated-hover">
                    <i class="fa  fa-rss faa-pulse" aria-hidden="true"></i>
                    RSS
                  </span>
                </a>
                
              </li>
            
          </ul>
        </nav>
      </div>
    </div>
  </div>
</header>

      <link rel="stylesheet" type="text/css" href="/css/sharejs.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.4.2/tocbot.css">
<div class="pattern-center-blank"></div>

  <div class="pattern-center single-center">
    <!-- 有配图默认渲染第一张 -->
    <div class="pattern-attachment-img lazyload" style="background-image: url(https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/upload/webservice.jpg);" src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/loader/orange.progress-bar-stripe-loader.svg" data-src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/upload/webservice.jpg">
    </div>
    <header class="pattern-header single-header">
      <h1 class="entry-title">
      WebService基础学习</h1>
      <p class="entry-census">
        <span>
          <a href="">
            <img src="">
          </a>
        </span>
        <span>
          <a href=""></a>
        </span>
        <span class="bull">
        ·</span>
        2017-2-26<span class="bull">
        ·</span>
      <span id="busuanzi_value_page_pv"></span>次阅读</p>
    </header>
  </div>

<div id="content" class="site-content">
  <div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">
      <article id="post-1" class="post-1 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized">
        <div class="toc"></div>
        <!--<div class="toc-entry-content"><!-- 套嵌目录使用（主要为了支援评论）-->
        
        <div class="entry-content">
          <p>鉴于这次的软件体系结构要交一份WebService的作业，所以顺路记一些学习笔记。</p>
<h1 id="从WebService说起"><a href="#从WebService说起" class="headerlink" title="从WebService说起"></a>从WebService说起</h1><p>很久很久很久以前，世界上是没有电脑的。<br>很久很久以前，两台电脑之间是不能通讯的。<br>很久以前，出现了Web，它连接起了不同硬件，不同平台的计算机。<br>于是，人们就开始希望<strong>两台计算机之间的应用程序</strong>，能够互相通讯，就有了<a href="https://zh.wikipedia.org/wiki/Web%E6%9C%8D%E5%8A%A1" target="_blank" rel="noopener">WebService</a></p>
<a id="more"></a>
<p><br><br>WebService,最简单的就是理解成一个互联网上的API接口。<br>类比互联网上常规的浏览网页的方式：你发来一个http规定的文档，我返回一种http规定的文档。最后浏览器根据http协定，将获得的内容解析并呈现。<br>而WebService则于此相似：你发来一个带有<strong>协定好</strong>的参数的<strong>一定格式</strong>的消息，我返回去一个带有<strong>协定好</strong>的返回值的<strong>一定格式</strong>的消息。最后你根据文档的格式，把返回值解析出来就好。<br><br><br>那么这里的问题是：</p>
<ol>
<li>消息的格式是什么，怎么跨平台传输？</li>
<li>怎么协定参数和返回值？<br><br><br>解决方案：</li>
<li>因为这个请求是基于Web，所以首先想到了http。<br> 但是http只是两个设备间的一个交通工具，它不能负责识别各类复杂的数据。<br>所以呢，我们就需要约定一套新的数据访问协议，专门用来识别数据并且将它们包装或拆包。这样子就能把数据格式从设备平台上独立出来了。<br>而最为常用的数据访问协议，就是<a href="https://zh.wikipedia.org/wiki/SOAP" target="_blank" rel="noopener">SOAP</a>（简单对象访问协议），它是基于XML实现的数据访问。<br></li>
<li>共同约定一个文档格式呗。<br> 为了同时便于机器解析和人类阅读，比较常用的格式就是<a href="https://zh.wikipedia.org/wiki/WSDL" target="_blank" rel="noopener">WSDL</a>文档了。<br>这是一个基于XML的文档，至于里面标记的含义老师讲过一点但我没听，用的时候自行理解或者百歌就好。</li>
</ol>
<h1 id="WebService服务流程"><a href="#WebService服务流程" class="headerlink" title="WebService服务流程"></a>WebService服务流程</h1><ol>
<li>用户发现了这个WebService服务</li>
<li>用户阅读（或用工具解析后理解）它的WSDL文档</li>
<li>用户将准备好的SOAP消息（带有需要参数的XML文档）发到服务器</li>
<li>服务器解析SOAP消息后进行处理</li>
<li>服务器产生SOAP消息（带有需求返回值的XML文档）并返回给用户</li>
<li>用户收到SOAP消息并解析获取返回结果</li>
</ol>
<h1 id="测试WebService的服务"><a href="#测试WebService的服务" class="headerlink" title="测试WebService的服务"></a>测试WebService的服务</h1><p>测试WebService的方法应该挺多的，但我这里偷下懒，就只用我们老师要求使用的<a href="https://www.soapui.org/" target="_blank" rel="noopener">SOAPUI</a>了。</p>
<ol>
<li>打开SOAPUI</li>
<li>点击工具栏中的SOAP，添加SOAP工程Initial。<br> WSDL一栏，填写本地的或Web上的WSDL地址。<br>这里我用了一个免费的中英互译WebService测试：地址为<a href="http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?WSDL" target="_blank" rel="noopener">http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?WSDL</a></li>
<li>找到我们要测试的服务( 那个HelloWebXml,只是个用来做测试的东西，无视掉就好)</li>
<li>SOAPUI已经帮忙生成好了SOAP消息框架，只需要自己填参数</li>
<li>点击运行按钮进行测<br>基础的功能就是这些，我暂时用到这里就足够了，至于其它的应用，若有需要自行谷歌……</li>
</ol>
<h1 id="几个免费的WebService服务"><a href="#几个免费的WebService服务" class="headerlink" title="几个免费的WebService服务"></a>几个免费的WebService服务</h1><ol>
<li><a href="http://www.webxml.com.cn/webservices/ChinaStockSmallImageWS.asmx?WSDL" target="_blank" rel="noopener">中国股票行情分时走势预览缩略图 WEB 服务</a></li>
<li><a href="http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?WSDL" target="_blank" rel="noopener">中国股票行情数据 WEB 服务</a></li>
<li><a href="http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?WSDL" target="_blank" rel="noopener">中文<->英文双向翻译 WEB 服务</-></a></li>
<li><a href="http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?WSDL" target="_blank" rel="noopener">中文简体字<->繁体字转换 WEB 服务</-></a></li>
<li><a href="http://www.webxml.com.cn/WebServices/ValidateEmailWebService.asmx?WSDL" target="_blank" rel="noopener">Email地址验证 WEB 服务</a></li>
<li><a href="http://www.webxml.com.cn/WebServices/ValidateCodeWebService.asmx" target="_blank" rel="noopener">验证码图片 WEB 服务</a></li>
<li><a href="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL" target="_blank" rel="noopener">天气预报 Web 服务</a></li>
</ol>

        </div>
        <!-- .entry-content -->
        <div class="single-reward">
          <div class="reward-open">赏
            <div class="reward-main">
              <ul class="reward-row">
                <li class="alipay-code"><img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/custom/donate/AliPayQR.jpg"></li>
                <li class="wechat-code"><img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/custom/donate/WeChanQR.jpg"></li>
              </ul>
            </div>
          </div>
        </div>
        <div style="text-align:center; width: 100%" class="social-share share-mobile" data-disabled="diandian, tencent"></div>
        <footer class="post-footer">
          <div class="post-lincenses"><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" target="_blank" rel="nofollow"><i class="fa fa-creative-commons" aria-hidden="true"></i> 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a></div>
          <div class="post-tags">
          </div>
          <div class="post-share">
            <div class="social-share sharehidden share-component"></div>
            <i class="iconfont show-share icon-forward"></i>
          </div>
        </footer><!-- .entry-footer -->
      </article>
      <!-- #post-## -->
      <div class="toc" style="background: none;"></div>
      <section class="post-squares nextprev">
        
          
            <div class="post-nepre half previous">
          
            <a href="/2017/02/26/REST-RESTful笔记/" rel="prev">
              <div class="background">
                <img class="lazyload" src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/loader/orange.progress-bar-stripe-loader.svg" data-src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/upload/restful.jpg" style="width: 100%; height: 100%; object-fit: cover; pointer-events: none;" onerror="imgError(this,3)" src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/upload/restful.jpg">
              </div>
              <span class="label">
              Previous Post</span>
              <div class="info">
                <h3>
                REST&amp;RESTful笔记</h3>
                <hr>
              </div>
            </a>
          </div>
        
        
          
            <div class="post-nepre half next">
          
            <a href="/2017/02/26/webOptimization/" rel="next">
              <div class="background">
                <img class="lazyload" src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/loader/orange.progress-bar-stripe-loader.svg" data-src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/upload/u=1660020105,2683152124&fm=15&gp=0.jpg" style="width: 100%; height: 100%; object-fit: cover; pointer-events: none;" onerror="imgError(this,3)" src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/upload/u=1660020105,2683152124&fm=15&gp=0.jpg">
              </div>
              <span class="label">
              Next Post</span>
              <div class="info">
                <h3>
                webOptimization</h3>
                <hr>
              </div>
            </a>
          </div>
        
      </section>
      
<div id="vcomments"></div>
<script>
  window.onload = function(){
      var valine = new Valine();
      valine.init({
        el: '#vcomments',
        appId: "t6whCN1b96a2XW5eN358hXOC-gzGzoHsz",
        appKey: "kigfqfKhjVJ0LsaGBKPCowxC",
        path: window.location.pathname,
        placeholder: "你是我一生只会遇见一次的惊喜 ..."
      })
  }
</script>

      <section class="author-profile">
        <div class="info" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
          <a href="" class="profile gravatar"><img src="" itemprop="image" alt="" height="70" width="70"></a>
          <div class="meta">
            <span class="title">Author</span>
            <h3 itemprop="name">
            <a href="" itemprop="url" rel="author"></a>
            </h3>
          </div>
        </div>
        <hr>
        <p><i class="iconfont icon-write"></i></p>
      </section>
    </main><!-- #main -->
  </div><!-- #primary -->
</div>



    </div>    
    <div class="ins-search">
    <div class="ins-search-mask"></div>
    <div class="ins-search-container">
        <div class="ins-input-wrapper">
            <input type="text" class="ins-search-input" placeholder="请输入关键词..."/>
            <span class="ins-close ins-selectable"><i class="fa fa-times-circle"></i></span>
        </div>
        <div class="ins-section-wrapper">
            <div class="ins-section-container"></div>
        </div>
    </div>
</div>
<script>
(function (window) {
    var INSIGHT_CONFIG = {
        TRANSLATION: {
            POSTS: '文章',
            // PAGES: '页面',
            CATEGORIES: '分类',
            TAGS: '标签',
        },
        ROOT_URL: '/',
        CONTENT_URL: '/content.json',
    };
    window.INSIGHT_CONFIG = INSIGHT_CONFIG;
})(window);
</script>
    <!-- <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      &copy; 2020 墨小蛙<br>
      powered_by <a href="http://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer> -->
<footer id="colophon" class="site-footer" role="contentinfo">
  <div class="site-info">
    <div class="footertext">
      <div class="img-preload">
        <img src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/other/wordpress-rotating-ball-o.svg">
        <img src="https://cdn.jsdelivr.net/gh/honjun/cdn@1.6/img/other/disqus-preloader.svg">
      </div>
      <p style="color: #666666;">&copy 2018</p>
    </div>
    <div class="footer-device">
    <p style="font-family: 'Ubuntu', sans-serif;">
        <span style="color: #b9b9b9;">Theme <a href="https://github.com/honjun/hexo-theme-sakura" target="_blank" style="color: #b9b9b9;;text-decoration: underline dotted rgba(0, 0, 0, .1);">Sakura</a> <i class="iconfont icon-sakura rotating" style="color: #ffc0cb;display:inline-block"></i> by <a href="https://2heng.xin/" target="_blank" style="color: #b9b9b9;;text-decoration: underline dotted rgba(0, 0, 0, .1);">Mashiro</a>&<a href="https://www.hojun.cn/" target="_blank" style="color: #b9b9b9;;text-decoration: underline dotted rgba(0, 0, 0, .1);">Hojun</a>, Powered by Hexo, Hosted by Coding Pages</a>
        </span>
      </p>
    </div>
  </div><!-- .site-info -->
</footer>



<!-- <script src="/js/tocbot.js"></script> -->
<script type="text/javascript" src="/js/lib.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<script type="text/javascript" src="/js/InsightSearch.js"></script>
<script type="text/javascript" src="/js/jquery.fancybox.min.js"></script>
<script type="text/javascript" src="/js/zoom.min.js"></script>
<script type="text/javascript" src="/js/sakura-app.js"></script>
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src='//unpkg.com/valine@1.3.4/dist/Valine.min.js'></script>
<script src="/js/botui.js"></script>
<!-- 不蒜子 网页计数器 -->
<script src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.4.2/tocbot.min.js"></script> -->
<script type="text/javascript">
/* <![CDATA[ */
if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
  var Poi = {"pjax":"1","movies":{"url": "https://cdn.jsdelivr.net/gh/honjun/hojun@1.2","name":"Unbroken.mp4","live":"close"},"windowheight":"fixed","codelamp":"close","ajaxurl":"","order":"asc","formpostion":"bottom"};
} else {
  var Poi = {"pjax":"1","movies":{"url": "https://cdn.jsdelivr.net/gh/honjun/hojun@1.2","name":"Unbroken.mp4","live":"open"},"windowheight":"auto","codelamp":"close","ajaxurl":"","order":"asc","formpostion":"bottom"};
}
/* ]]> */

</script>
<script>
$(document).ready(function() {
  if ($(".toc").length > 0 && document.body.clientWidth > 1200) {
    if ($(".pattern-center").length > 0) { //有图的情况
      tocbot.init({
          // Where to render the table of contents.
          tocSelector: '.toc', // 放置目录的容器
          // Where to grab the headings to build the table of contents.
          contentSelector: '.entry-content', // 正文内容所在
          // Which headings to grab inside of the contentSelector element.
          scrollSmooth: true,
          headingSelector: 'h1, h2, h3, h4, h5', // 需要索引的标题级别
          headingsOffset: -400,
          scrollSmoothOffset: -85
      });
    } else {
      tocbot.init({
          // Where to render the table of contents.
          tocSelector: '.toc', // 放置目录的容器
          // Where to grab the headings to build the table of contents.
          contentSelector: '.entry-content', // 正文内容所在
          // Which headings to grab inside of the contentSelector element.
          scrollSmooth: true,
          headingSelector: 'h1, h2, h3, h4, h5', // 需要索引的标题级别
          headingsOffset: -85,
          scrollSmoothOffset: -85
      });
    }
    var offsetTop = $('.toc').offset().top - 95;
    window.onscroll = function() {
      var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
      if (scrollTop >= offsetTop) {
        $('.toc').addClass('toc-fixed');
      } else {
        $('.toc').removeClass('toc-fixed');
      }
    }
  }
});
</script>

    <div class="openNav no-select" style="height: 50px;">
      <div class="iconflat no-select" style="width: 50px; height: 50px;">
        <div class="icon"></div>
      </div>
      <div class="site-branding search-form-submit">
        <i class="iconfont js-toggle-search iconsearch icon-search"></i>
      </div>
    </div>
  </section>
  <div id="mo-nav" class="">
  <div class="m-avatar">
    <img src="https://cdn.jsdelivr.net/gh/inksmallfrog/cdn@master/img/avators/conan.jpg">
  </div>
  <p style="text-align: center; color: #333; font-weight: 900; font-family: 'Ubuntu', sans-serif; letter-spacing: 1.5px">さくら荘その小蛙</p>
  <p style="text-align: center; word-spacing: 20px;">
    
      
        <a href="http://github.com/inksmallfrog" class="fa fa-github" target="_blank" style="color: #333; margin-left:20px"></a>
      
        <a href="http://weibo.com/inksmallfrog?is_all=1" class="fa fa-weibo" target="_blank" style="color: #dd4b39; margin-left:20px"></a>
      
        <a href="https://wpa.qq.com/msgrd?v=3&uin=327720269&site=qq&menu=yes" class="fa fa-qq" target="_blank" style="color: #25c6fe; margin-left:20px"></a>
      
    
  </p>
  <ul id="menu-new-1" class="menu">
    
      <li>
        <a href="/">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-fort-awesome faa-shake" aria-hidden="true"></i>
            首页
          </span>
        </a>
        
      </li>
    
      <li>
        <a href="/archives">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-archive faa-shake" aria-hidden="true"></i>
            归档
          </span>
        </a>
        
          <ul class="sub-menu">
            
              <li>
                <a href="/categories/技术/">
                  <i class="fa fa-code" aria-hidden="true"></i>
                  技术
                </a>
              </li>
            
              <li>
                <a href="/categories/生活/">
                  <i class="fa fa-file-text-o" aria-hidden="true"></i>
                  生活
                </a>
              </li>
            
          </ul>
        
      </li>
    
      <li>
        <a href="javascript:;">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-list-ul faa-vertical" aria-hidden="true"></i>
            清单
          </span>
        </a>
        
          <ul class="sub-menu">
            
              <li>
                <a href="/tags/悦读/">
                  <i class="fa fa-th-list faa-bounce" aria-hidden="true"></i>
                  书单
                </a>
              </li>
            
              <li>
                <a href="/bangumi/">
                  <i class="fa fa-film faa-vertical" aria-hidden="true"></i>
                  番组
                </a>
              </li>
            
              <li>
                <a href="/music/">
                  <i class="fa fa-headphones" aria-hidden="true"></i>
                  歌单
                </a>
              </li>
            
              <li>
                <a href="/tags/图集/">
                  <i class="fa fa-photo" aria-hidden="true"></i>
                  图集
                </a>
              </li>
            
          </ul>
        
      </li>
    
      <li>
        <a href="/comment/">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-pencil-square-o faa-tada" aria-hidden="true"></i>
            留言板
          </span>
        </a>
        
      </li>
    
      <li>
        <a href="/links/">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-link faa-shake" aria-hidden="true"></i>
            友人帐
          </span>
        </a>
        
      </li>
    
      <li>
        <a href="/">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-leaf faa-wrench" aria-hidden="true"></i>
            关于
          </span>
        </a>
        
          <ul class="sub-menu">
            
              <li>
                <a href="/about/">
                  <i class="fa fa-meetup" aria-hidden="true"></i>
                  我？
                </a>
              </li>
            
              <li>
                <a href="/theme-sakura/">
                  <i class="fa iconfont icon-sakura" aria-hidden="true"></i>
                  主题
                </a>
              </li>
            
              <li>
                <a href="/lab/">
                  <i class="fa fa-cogs" aria-hidden="true"></i>
                  Lab
                </a>
              </li>
            
          </ul>
        
      </li>
    
      <li>
        <a href="/atom.xml">
          <span class="faa-parent animated-hover">
            <i class="fa  fa-rss faa-pulse" aria-hidden="true"></i>
            RSS
          </span>
        </a>
        
      </li>
    
  </ul>
  <p style="text-align: center; font-size: 13px; color: #b9b9b9;">&copy 2019 hexo-sakura</p>
</div>
<button onclick="topFunction()" class="mobile-cd-top" id="moblieGoTop" title="Go to top" style="display: none;"><i class="fa fa-chevron-up" aria-hidden="true"></i></button>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<!-- require MetingJS -->
<script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>
<style>
  .aplayer .aplayer-lrc {
    height: 35px;
  }
  .aplayer .aplayer-lrc p{
    font-size: 16px;
    font-weight: 700;
    line-height: 18px !important;
  }
  .aplayer .aplayer-lrc p.aplayer-lrc-current{
    color: #FF1493;
  }
  .aplayer.aplayer-narrow .aplayer-body{
    left: -66px !important;
  }
  .aplayer.aplayer-fixed .aplayer-lrc {
    display: none;
  }
  .aplayer .aplayer-lrc.aplayer-lrc-hide {
      display:none !important;
  }
  .aplayer.aplayer-fixed .lrc-show {
    display: block;
    background: rgba(255, 255, 255, 0.8);
  }
</style>
<meting-js

    id="2660651585"

    server="netease"

    type="playlist"

    fixed="true"

    autoplay="false"

    loop="all"

    order="random"

    preload="auto"

    volume="0.7"

    mutex="true"

</meting-js>
<script>
  $(function(){
    $('body').on('click', '.aplayer', function(){
      if($('.aplayer-button').hasClass('aplayer-play')) {
        $('.aplayer-lrc').removeClass('lrc-show');
      } else {
        $('.aplayer-lrc').addClass('lrc-show');
      }
    })
  });
</script>
</body>
</html>